package nsu.edu.zsq.service.sys;

import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.multipart.MultipartFile;

import com.github.pagehelper.PageInfo;

import nsu.edu.zsq.bean.Student;
import nsu.edu.zsq.param.PageQuery;

/** 
* Description: 学生的service类<br>
*/
public interface StudentService {
    
    /**
     * 通过学生id获取一个学生信息
     * @param stuId 学生id
     * @return Student
     */
    public Student getStudent(int stuId);
    
    /**
     * 根据专业代码获取带有分页信息的学生列表
     * @param majorNo 专业代码
     * @param pageQuery 分页数据
     * @return PageInfo<Student>
     */
    public PageInfo<Student> listSchMajorWithPage(String majorNo, PageQuery pageQuery);     
    
    /**
     * 批量保存学生信息
     * @param students 学生信息列表
     */
    public void saveBatchStudent(List<Student> students);
    
    /**
     * 保存一条学生信息
     * @param student 学生信息
     */
    public void saveStudent(Student student);
    
    /**
     * 批量删除学生信息（不物理删除）
     * @param stuIds 学生id数组
     */
    public void deleteBatchStudent(int[] stuIds);
    
    /**
     * 删除一条学生信息（不物理删除）
     * @param stuId 学生id
     */
    public void deleteStudent(int stuId);
    
    /**
     * 更新一条学生信息
     * @param student 学生信息
     */
    public void updateStudent(Student student);
    
    
    /**
     * 从Excel中导入学生信息
     * @param excelFile 页面上传的Excel文件
     */
    public void importStudentFromExcel(MultipartFile excelFile);
    
    /**
     * 导出学生信息到excel表（xlsx格式）
     * @param response
     */
    public void exportStudentToExcel(HttpServletResponse response);
    /** 
     * 重置学生登录密码
     * @param stuId 学生id
     */
    public void resetPassword(int stuId);
}
